Embodiments of the inventive subject matter generally relate to the field of data processing, or, more specifically, distribution of images from a server to client.
In distributing images on data processing systems, documents having many images are slow to load on the client side, and the images are cumbersome to administer on the server side. Consider the following HTML segment:
1 <HTML> <HEAD> <TITLE>Business Partner support from IBMPartnerWorld</TITLE> </HEAD> <BODY> <table width=“760” border=“0”cellspacing=“0” cellpadding=“0”> <img src=“//www.ibm.com/i/v11/m/en/mast_lo-go.gif” border=“0” alt=“IBM” width=“150” height=“47”/></td> <td width=“310”class=“tbg”><a href=“#main”> <img src=“//www.ibm.com/i/c.gif” border=“0” width=“1”height=“1” alt=“Skip to main content”/></a></td> <table border=“0” cellpadding=“0”cellspacing=“0”> <form name=“Search” method=“get” <input type=“hidden” name=“v”value=“11” size=“15”/><tr> <img src=“http://t1d.www-1.cacheibm.com/printer.gif”width=“23” height=“19” alt=“Link to printable version of page”></td> <trvalign=“middle”><td> <img src=“http://t1d.www-1.cacheibm.com/pwhome.jpg”width=“61O” height=“52” alt=“IBM PartnerWorld home header graphic” /></td><td><input maxlength=“100” class=“input” size=“15” name=“q” value=“”type=“text”/></td><td> <img src=“//www.ibm.com/i/v11/icons/fw.gif” width=“16”height=“16” alt=“”/></td> </BODY> </HTML>
This example HTML segment is an excerpt from the IBM website at http://www.developer.ibm.com. Notice the repeated use of <img> elements. This segment contains five <img> elements, and the document from which this example was excerpted, at the time of this writing, contained 156 <img> elements. For each such element, a browser displaying the document opens a separate TCP/IP connection to a server, and transmits an HTTP request message requesting the image file identified in the ‘src’ attribute of the <img> element. Each such request eventually results in a corresponding HTTP response message from the server, through still another TCP/IP connection. In addition, each TCP/IP connection requires system calls to establish sockets and transmit TCP/IP ‘send’ messages, each of which requires a full-blown context switch at the CPU level, recognized by persons of ordinary skill in the art as a heavy computer processing burden. Displaying the document from which this example was excerpted requires 312 TCP/IP connections just for the image transfers. Moreover, this is not at all atypical. Web pages today often contain many images.
Notice also that the ‘src’ attributes identify image files in several file system locations. In fact, the ‘src’ attribute can only identify files stored in file system locations. System administrators on the server side must store and manage image files in ways that are cumbersome, with image files often scattered around in different file system locations on different servers. Tracking updates and locating and removing obsolete images are all very cumbersome on file systems. For all these reasons, there is an ongoing need for improved ways of distributing images in data processing systems.